> ## Documentation Index
> Fetch the complete documentation index at: https://docs.layerfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an asset value update

> Records a change to an asset's value (depreciation, improvement, impairment, or revaluation) and posts the corresponding journal entry. Identify the asset with either `asset_id` or `asset_external_id`.



## OpenAPI

````yaml post /v1/businesses/{businessId}/assets/value-updates
openapi: 3.0.1
info:
  title: API
  version: latest
servers: []
security:
  - BearerAuth: []
tags: []
externalDocs:
  url: /
paths:
  /v1/businesses/{businessId}/assets/value-updates:
    post:
      tags: []
      summary: Create an asset value update
      description: >-
        Records a change to an asset's value (depreciation, improvement,
        impairment, or revaluation) and posts the corresponding journal entry.
        Identify the asset with either `asset_id` or `asset_external_id`.
      operationId: business.assets.valueUpdates.post
      parameters:
        - name: businessId
          in: path
          description: The UUID of the business.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: The value update to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAssetValueUpdateParams'
            examples:
              depreciation:
                summary: Record monthly depreciation
                value:
                  asset_id: 550e8400-e29b-41d4-a716-446655440000
                  amount: 1666
                  update_type: DEPRECIATION_AMORTIZATION
                  counter_account: DEPRECIATION
                  date: '2024-02-29T00:00:00Z'
      responses:
        '201':
          description: Asset value update created successfully.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/ApiAssetValueUpdate'
components:
  schemas:
    CreateAssetValueUpdateParams:
      type: object
      description: >-
        Parameters for recording a change to an asset's value (depreciation,
        improvement, impairment, or revaluation). Identify the asset with either
        `asset_id` or `asset_external_id`. Posts a journal entry between the
        asset and the counter account.
      required:
        - amount
        - update_type
        - counter_account
        - date
      properties:
        asset_id:
          type: string
          format: uuid
          nullable: true
          description: ID of the asset to update. Provide this or `asset_external_id`.
        asset_external_id:
          type: string
          nullable: true
          description: External ID of the asset to update. Provide this or `asset_id`.
        external_id:
          type: string
          nullable: true
          description: Unique ID of the value update in your system for linking purposes.
        amount:
          type: integer
          format: int64
          description: Amount of the value change, in cents.
        update_type:
          $ref: '#/components/schemas/AssetValueUpdateType'
        counter_account:
          allOf:
            - $ref: '#/components/schemas/AccountIdentifier'
          description: >-
            The counter account for the journal entry (e.g. depreciation
            expense, or the cash/expense account that funded an improvement).
        date:
          type: string
          format: date-time
          description: Date of the value update.
        memo:
          type: string
          nullable: true
          description: Internal note about the value update.
        metadata:
          type: object
          additionalProperties: true
          nullable: true
          description: >-
            Arbitrary JSON object you can attach for your own use. Layer stores
            and returns it unchanged.
        reference_number:
          type: string
          nullable: true
          description: Reference number for the value update.
    ApiAssetValueUpdate:
      type: object
      description: >-
        A recorded change to an asset's value, such as depreciation,
        improvement, impairment, or revaluation.
      required:
        - id
        - business_id
        - asset_id
        - amount
        - update_type
        - date
        - transaction_tags
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the value update.
        business_id:
          type: string
          format: uuid
          description: ID of the business that owns the asset.
        external_id:
          type: string
          nullable: true
          description: Unique ID of the value update in your system for linking purposes.
        asset_id:
          type: string
          format: uuid
          description: ID of the asset this value update applies to.
        amount:
          type: integer
          format: int64
          description: Amount of the value change, in cents.
        update_type:
          $ref: '#/components/schemas/AssetValueUpdateType'
        date:
          type: string
          format: date-time
          description: Date of the value update.
        archived_at:
          type: string
          format: date-time
          nullable: true
          description: When the value update was archived, if applicable.
        memo:
          type: string
          nullable: true
          description: Internal note about the value update.
        metadata:
          type: object
          additionalProperties: true
          nullable: true
          description: >-
            Arbitrary JSON object you can attach for your own use. Layer stores
            and returns it unchanged.
        reference_number:
          type: string
          nullable: true
          description: Reference number for the value update.
        transaction_tags:
          type: array
          items:
            $ref: '#/components/schemas/ApiTag'
          description: Tags applied to this record.
    AssetValueUpdateType:
      type: string
      description: >-
        The kind of value change applied to an asset.
        `DEPRECIATION_AMORTIZATION`, `IMPAIRMENT`, and `REVALUATION_DOWN`
        decrease the asset's carrying value; `IMPROVEMENT` and `REVALUATION_UP`
        increase it. `DEPRECIATION_AMORTIZATION` requires the asset to have an
        `accumulated_depreciation_account` configured.
      enum:
        - DEPRECIATION_AMORTIZATION
        - IMPROVEMENT
        - IMPAIRMENT
        - REVALUATION_UP
        - REVALUATION_DOWN
    AccountIdentifier:
      oneOf:
        - $ref: '#/components/schemas/AccountId'
          description: ID of the account.
          title: Account ID
        - $ref: '#/components/schemas/AccountStableName'
          description: Stable name associated with the account.
          title: Account Stable Name
    ApiTag:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID for the tag.
        key:
          type: string
          description: Key for the tag.
          example: ExampleTagKey
        dimension_display_name:
          type: string
          nullable: true
          description: Display name for the tag dimension.
        value:
          type: string
          description: Value for the tag.
          example: ExampleTagValue
        value_display_name:
          type: string
          nullable: true
          description: Display name for the tag value definition.
        dimension_id:
          type: string
          format: uuid
          description: ID of the tag dimension this tag belongs to.
        definition_id:
          type: string
          format: uuid
          description: ID of the tag value definition.
        archived_at:
          type: string
          format: date-time
          nullable: true
          description: When the tag was archived.
      required:
        - id
        - key
        - value
        - dimension_id
        - definition_id
    AccountId:
      type: object
      required:
        - type
        - id
      properties:
        type:
          type: string
          enum:
            - AccountId
          description: Resource type. Value will be `AccountId`.
          example: AccountId
        id:
          type: string
          format: uuid
          description: ID of the account.
    AccountStableName:
      type: object
      required:
        - type
        - stable_name
      properties:
        type:
          type: string
          enum:
            - StableName
          description: Resource type. Value will be `StableName`.
          example: StableName
        stable_name:
          type: string
          example: CURRENT_ASSETS
          description: Stable name of the account.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````