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

# Expense report fields - update

> Recomputes the field definitions after a client-side change to one or more fields on an expense report. Send the current `fields` payload as the request body — typically after a field marked `requiresUpdate: true` was edited — and the response returns the same shape with derived and dependent fields refreshed. If the body's `id` field carries an existing expense-report id the server uses it to load report context; otherwise the body alone is the source of truth. Unlike the GET variant, no fields are seeded from server-side records.



## OpenAPI

````yaml openapi/findity-expense-api.json PUT /me/organizations/{id}/expensereports/fields
openapi: 3.0.3
info:
  title: Findity Expense API
  description: Findity Expense API
  version: 1.0.0
servers:
  - url: https://stage-api.findity.com/api/v1/expense
  - url: https://api.findity.com/api/v1/expense
security:
  - bearerAuth: []
paths:
  /me/organizations/{id}/expensereports/fields:
    put:
      tags:
        - Fields
      summary: Expense report fields - update
      description: >-
        Recomputes the field definitions after a client-side change to one or
        more fields on an expense report. Send the current `fields` payload as
        the request body — typically after a field marked `requiresUpdate: true`
        was edited — and the response returns the same shape with derived and
        dependent fields refreshed. If the body's `id` field carries an existing
        expense-report id the server uses it to load report context; otherwise
        the body alone is the source of truth. Unlike the GET variant, no fields
        are seeded from server-side records.
      operationId: putOrganizationExpenseReportFields
      parameters:
        - $ref: '#/components/parameters/organizationId'
        - $ref: '#/components/parameters/expenseReportFieldsInclude'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseReportFieldsResponse'
              examples:
                Expense report example:
                  value:
                    fields:
                      - name: Id
                        property: id
                        controlType: TEXT
                        mandatory: false
                        visible: false
                        value: 2bb9fcae93894bf7aa2e8f9009b8f3e2
                        errorText: null
                        error: null
                        custom: false
                      - name: Name
                        property: name
                        controlType: TEXT
                        mandatory: false
                        visible: true
                        value: Example Report Name
                        errorText: null
                        error: null
                        custom: false
                      - name: Description
                        property: description
                        controlType: MULTI_LINE_TEXT
                        mandatory: false
                        visible: true
                        value: Example expense report description
                        errorText: null
                        error: null
                        custom: false
                      - name: Recipients
                        property: recipientList
                        controlType: RECIPIENT_LIST
                        mandatory: false
                        visible: false
                        value:
                          - email: test.user@findity.com
                        errorText: null
                        error: null
                        custom: false
                      - name: Preview
                        property: previewURL
                        controlType: URL
                        mandatory: false
                        visible: true
                        value: >-
                          https://expense.findity.com/api/expensereports/2bb9fcae93894bf7aa2e8f9009b8f3e2
                        errorText: null
                        error: null
                        custom: false
                      - name: Testlista rapport
                        property: 8ab28c4e833655d4018336d471cf0134
                        controlType: LIST
                        mandatory: false
                        visible: true
                        value: null
                        errorText: null
                        error: null
                        custom: true
                        url: >-
                          /me/organizations/8a49a1b359cbfe2a0159d551c8d5008b/lists/CUSTOM_DIMENSIONS_a6e123ed4ab64d4c85d39dc50395c46f_8a49a1b359cbfe2a0159d551c8d5008b
                      - name: FEP-1021 Test
                        property: 8ab28c4f746e90720174718de8460504
                        controlType: LIST
                        mandatory: false
                        visible: false
                        value: null
                        errorText: null
                        error: null
                        custom: true
                        url: >-
                          /me/organizations/8a49a1b359cbfe2a0159d551c8d5008b/lists/CUSTOM_DIMENSIONS_81f165ee1f2244e793568e039acb826b_8a49a1b359cbfe2a0159d551c8d5008b
                      - name: Expense records list
                        property: expenseRecords
                        controlType: LIST
                        multiSelect: true
                        mandatory: false
                        visible: true
                        value:
                          - 28897169ff6444c6957f362812fb9cc8
                          - c99a0ead61344fa48657e8814737a524
                        errorText: null
                        error: null
                        custom: false
                        url: >-
                          /expenses?organizationId=8ab28c4f6fd37d39016fd6fee0470003&expenseReportId=0ac52a615656427689a2e5d6641e6bf0&include=meta.abbreviation
                    meta:
                      capabilities:
                        canBeDeleted: true
                        canBeSentIn: false
                        canBeRetracted: false
                      summary: null
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                Expense report not found example:
                  value:
                    result: error
                    code: EXPENSE_REPORT_NOT_FOUND
                    description: Expense report not found
                Organization not found example:
                  value:
                    result: error
                    code: ORGANIZATION_NOT_FOUND
                    description: >-
                      Failed to get organization for id:
                      b0d18fe3c5864d05a05ce5656cb14696
components:
  parameters:
    organizationId:
      in: path
      name: id
      required: true
      description: The id of the organization of the user
      schema:
        $ref: '#/components/schemas/Uuid'
      example: 05b8daba9ba14a49846fe77883248cf0
    expenseReportFieldsInclude:
      name: include
      in: query
      description: optional properties to include
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - meta.capabilities
            - meta.summary
  schemas:
    ExpenseReportFieldsResponse:
      type: object
      description: Fields format of expense report
      properties:
        meta:
          type: object
          description: >-
            Field-builder metadata for the expense report. Contains the summary,
            the caller's capability flags, and a preview URL.
          properties:
            summary:
              $ref: '#/components/schemas/MetaSummarySchema'
            capabilities:
              $ref: '#/components/schemas/ExpenseReportCapabilities'
            previewUrl:
              type: string
              description: >-
                delivers the URL that can be used for the preview of expense
                report
        fields:
          description: >-
            Field-builder array describing the expense report's editable values.
            Each entry pairs a property name with a value and any errors.
          allOf:
            - $ref: '#/components/schemas/FieldsArray'
    404Error:
      type: object
      properties:
        result:
          type: string
        code:
          type: string
        description:
          type: string
    Uuid:
      type: string
      pattern: ^[0-9a-fA-F]{32}$
      description: UUID without dashes (32-character hex string)
    MetaSummarySchema:
      type: array
      description: Contains summarised information about report
      items:
        type: object
        properties:
          property:
            type: string
            description: Name of property
          type:
            type: string
            description: >-
              One of the following types will be provided [property_type,
              header, separator, image]
          value:
            type: string
            description: Value assigned to the property
    ExpenseReportCapabilities:
      type: object
      properties:
        canBeDeleted:
          type: boolean
          description: Indicates if the expense report could be deleted or not
          example: true
        canBeRetracted:
          type: boolean
          description: >-
            Indicates if the expense report can be retracted. A report can only
            be retracted if it is in APPROVAL status and no expense records or
            approval chain instances have been approved yet
          example: false
        canBeSentIn:
          type: boolean
          description: Indicates if the expense report can be sent in by end user
          example: true
        canBeEdited:
          type: boolean
          description: Indicates if the expense report can be edited in by end user
          example: true
        canRemoveExpenses:
          type: boolean
          description: >-
            Indicates if expense records that are attached to/included in the
            report can be removed. This is set to false if the report is in
            processStatus = REJECTED or if it is corporate card expense report
        canAddExpenses:
          type: boolean
          description: >-
            Indicates if expense records that are not attached to/excluded from
            the report can be added. This is set to false if the report is in
            processStatus = REJECTED or if it is corporate card expense report
    FieldsArray:
      type: array
      items:
        type: object
        properties:
          name:
            type: string
            description: >-
              A translated name of the field, can be used to present to to the
              user
          property:
            type: string
            description: >-
              Identifier of the field. Contains the path to the property in the
              expense API, for example verification.amount, cardLiability
          controlType:
            type: string
            enum:
              - TEXT
              - MULTI_LINE_TEXT
              - DOUBLE
              - INTEGER
              - SWITCH
              - DATE
              - DATE_TIME
              - LIST
              - CONTENT_HOLDER
              - GUEST_LIST
              - FIELD_GROUP
              - LOCAL_DATE_TIME
              - INFORMATION
          mandatory:
            type: boolean
            description: The field is required
          visible:
            type: boolean
            description: Only fields with visible = true should be shown
          requiresUpdate:
            type: boolean
            description: >-
              Tells the client that if this field is changed, the client must
              call the API again with the fields data
          url:
            type: string
            description: >-
              If controlType is LIST this property contains an url to the
              selectable values for this field
          custom:
            type: boolean
            description: >-
              Indicates if this is a custom field not part of the standard
              fields
          scannable:
            type: boolean
            description: >-
              Indicates if this field is part of the data extracted by the
              receipt scanning
          qrCodeSupported:
            type: boolean
            description: >
              Set on the `verification.receiptAttachment` (CONTENT_HOLDER) field
              when the organization's booking country uses fiscal QR codes on
              receipts (currently Portugal). When `true`, clients should offer a
              QR-scan step in the receipt capture flow and, on success, send the
              decoded string as the `qrScan` header on `POST /content`. Absent
              when not applicable.
          value:
            type: object
            description: >-
              The value of the field, this is dynamic based on the control type.
              For example if the control type is DOUBLE the value property must
              have a double type. For SubsistenceAllowance and property =
              verification.specification[x].date1 or date2, this value is
              set/delivered in format "yyyy-MM-dd HH:mm" where the date is at
              UTC date time
          data:
            type: object
            description: >-
              When calling the fields-endpoint initially, this may contain a
              list object for fields with control type LIST. This way the client
              does not have to make a call to the list endpoint to fetch the
              value. This has the same structure as the result in the list.
            properties:
              id:
                type: string
                description: Represents the id of the value that is set in this Field
              name:
                type: string
                description: Representable text for chosen list item for set id
              section:
                type: integer
              iconUrl:
                type: string
          allowFutureDate:
            type: boolean
            description: >-
              If controlType is DATE or DATE_TIME or LOCAL_DATE_TIME, this
              property is set. Default value is false. If the value is false,
              then date picker shouldn't allow setting date to value higher than
              today's date.
          error:
            type: string
            description: >-
              A string that represents the error. This property is not empty
              when there is some error related to the specific field.
          errorText:
            type: string
            description: >-
              Human readable description of value returned in error property.
              This property is not empty when there is some error related to the
              specific field.
          disabled:
            type: boolean
            description: >-
              Indicates if property should be enabled or disabled for editing.
              In Approval flow, this property is always set to "true".
          fields:
            type: array
            description: >-
              This property is populated when controlType="FIELD_GROUP" and it
              has the same structure as this array of objects. The list of
              objects represents all fields that are related to the specific
              field group.
          deletable:
            type: boolean
            description: >-
              This property is used for removable fields, for example on the
              FIELD_GROUP for a specification in allowance
          deleteCommand:
            allOf:
              - $ref: '#/components/schemas/FieldsCommandSchema'
          informationType:
            type: string
            enum:
              - normal
              - information
              - warning
              - error
              - success
            description: >-
              This property is set when controlType=INFORMATION and it should
              indicate which type of information the field is
          dismissible:
            type: boolean
            description: >-
              This property is set when controlType=INFORMATION to indicate if
              the information is dismissible or not
          multiSelect:
            type: boolean
            description: >-
              This property is going in combination with controlType=LIST to
              indicate that multiple values can be selected from the list
          listItemType:
            type: string
            description: >-
              This property is set when there is controlType=LIST &
              multiSelect=true to indicate which type of item is list made of
          accessorIconUrl:
            type: string
            description: >-
              This property is set by the URL value for the icon which can
              indicate access to different provided commands. It is usually
              provided within the field of controlType=FIELD_GROUP
          accessorText:
            type: string
            description: >-
              This property represents the text that can be set as replacement
              for all the fields behind the defined FIELD_GROUP. It can be used
              as display for accessor to the list of the fields provided in the
              FIELD_GORUP
          numberOfDecimals:
            type: integer
            description: >-
              The maximum number of decimals this field can present, uses
              current currency. only set for fields with an amount in value.
          summary:
            allOf:
              - $ref: '#/components/schemas/MetaSummarySchema'
          commands:
            type: array
            description: >-
              This property contains the list of possible commands that can be
              performed on the specific field
            items:
              allOf:
                - $ref: '#/components/schemas/FieldsCommandSchema'
    FieldsCommandSchema:
      type: object
      description: >-
        This property is used to define the command available on the filed of
        controlType=FIELD_GROUP
      properties:
        text:
          type: string
          description: This property contains the text for the command to be displayed
        confirmationRequired:
          type: boolean
          description: >-
            This property indicates if the client should display a dialog with
            confirmation as result of it
        confirmation:
          type: string
          description: >-
            This property contains the text that should be displayed in case
            that confirmationRequired=true and client decided to perform the
            command/action
        command:
          type: string
          description: >-
            This property contains the command that can be executed by
            performing the PUT request with it on the fields endpoint
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````