Soldo Software and Services Requests API

The Requests API from Soldo Software and Services — 4 operation(s) for requests.

OpenAPI Specification

soldo-software-and-services-requests-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Soldo Business API v2.0 - OpenAPI 3.0 Accounting Classification Requests API
  description: Soldo Business API v2.0 OpenAPI 3.0 specification
  version: 5.56.0
servers:
- url: https://api.soldo.com
  description: Production server (using live data)
- url: https://api-demo.soldocloud.net
  description: Sandbox server (using test data)
tags:
- name: Requests
paths:
  /business/v2/requests:
    get:
      tags:
      - Requests
      summary: Search Requests
      description: Endpoint to search `Requests`.
      operationId: request-search
      parameters:
      - name: status
        in: query
        description: The status of the `request`
        schema:
          type: array
          items:
            $ref: '#/components/schemas/RequestStatus'
        example: APPROVED
      - name: paymentMethod
        in: query
        description: The payment method of the `request`
        schema:
          $ref: '#/components/schemas/PaymentMethod'
        example: TEMPORARY_CARD
      - name: text
        in: query
        description: A simple text to search in the `Request` (`name` or `description`).
        schema:
          type: string
          description: A simple text to search in the `Request` (`name` or `description`).
          example: something
        example: something
      - name: p
        in: query
        description: It indicates the specific page to display (the counter starts from zero).
        schema:
          type: integer
          description: It indicates the specific page to display (the counter starts from zero).
          format: int32
          example: 3
          default: 0
        example: 3
      - name: s
        in: query
        description: It indicates the number of items per page.
        schema:
          maximum: 50
          type: integer
          description: It indicates the number of items per page.
          format: int32
          example: 25
          default: 0
        example: 25
      - name: d
        in: query
        description: It indicates how the pages are ordered.
        schema:
          $ref: '#/components/schemas/Direction'
        example: DESC
      - name: props
        in: query
        description: It indicates the sorting direction applied to the above parameters. To apply a sorting on multiple parameters, set as many times the `props` parameter in the request.
        schema:
          type: array
          description: It indicates the sorting direction applied to the above parameters. To apply a sorting on multiple parameters, set as many times the `props` parameter in the request.
          example: creationTime
          items:
            type: string
            description: It indicates the sorting direction applied to the above parameters. To apply a sorting on multiple parameters, set as many times the `props` parameter in the request.
            example: creationTime
        example: creationTime
      responses:
        '200':
          description: The result is an array containing `Requests`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Requests'
        '400':
          description: Your request has missing arguments or is malformed.
      security:
      - standardAuth:
        - request_read
    post:
      tags:
      - Requests
      summary: Add request
      description: Endpoint to create an `Request`. There are 3 types of request:GOODS_OR_SERVICES, FUNDS,TRIP.
      operationId: request-add
      parameters:
      - name: X-Soldo-Fingerprint
        in: header
        required: true
        schema:
          type: string
          description: '[Advanced authentication](ref:advanced-authentication): `SHA512SUM` of the fingerprint values listed in the fingerprint order for this endpoint.'
          example: '{{fingerprint}}'
          default: '{{fingerprint}}'
      - name: X-Soldo-Fingerprint-Signature
        in: header
        required: true
        schema:
          type: string
          description: '[Advanced authentication](ref:advanced-authentication): Signature of the `X-Soldo-Fingerprint`.'
          example: '{{fingerprint_signature}}'
          default: '{{fingerprint_signature}}'
      requestBody:
        description: Create `Request` JSON parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRequestPayload'
      responses:
        '200':
          description: The returned resource is the single `Request` created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestPayload'
              examples:
                GoodOrServicesResponseExample:
                  summary: type GOODS_OR_SERVICES
                  description: GoodOrServicesResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: GOODS_OR_SERVICES
                    name: Goods or Services
                    amount: 150
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    number_transactions: '1'
                    payment_method: card
                    description: TYPE GOOD_SERVICES
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
                TripResponseExample:
                  summary: type TRIP
                  description: TripResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: TRIP
                    name: Trip
                    amount: '150.00'
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    card_id: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
                    description: TYPE TRIP
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    destination: Rome
                    date_from: '2025-12-24T23:00:00Z'
                    date_to: '2025-12-26T22:59:59.999Z'
                    traveller: LVRS6404-000005
                    expense_allocation:
                    - expense_category_id: 0145e140-fc56-4ffd-9a57-a3c776bb2b51
                      spend_period: BEFORE_TRIP
                      amount: 1
                      amount_currency: EUR
                    tags: []
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
                FundResponseExample:
                  summary: type FUNDS
                  description: FundResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: FUNDS
                    name: Fund
                    amount: 150
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    card_id: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
                    description: TYPE FUNDS
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
        '400':
          description: Your request has missing arguments or is malformed.
      security:
      - standardAuth:
        - request_write
      x-soldo:
        fingerprint-order: request_timestamp, name, request_process_id, type, token
  /business/v2/requests/{requestId}/approve:
    put:
      tags:
      - Requests
      summary: Approve Request
      description: Endpoint to approve an `Request` by ID. Payload depends on the request type (GOODS_OR_SERVICES, FUNDS, TRIP).
      operationId: request-approve
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
          description: The `Request` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      requestBody:
        description: Approved `request` JSON parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApprovedRequestPayload'
      responses:
        '204':
          description: No content as result.
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - request_write
  /business/v2/requests/{requestId}/decline:
    put:
      tags:
      - Requests
      summary: Decline Request
      description: Endpoint to decline an `Request` by ID.
      operationId: request-decline
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
          description: The `Request` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      requestBody:
        description: Decline `request` JSON parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeclineRequest'
      responses:
        '204':
          description: No content as result.
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - request_write
  /business/v2/requests/{requestId}:
    get:
      tags:
      - Requests
      summary: Get Request
      description: 'Endpoint to get an `Request` by ID.

        There are 3 types of request:GOODS_OR_SERVICES, FUNDS,TRIP.'
      operationId: request-get
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
          description: The `Request` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      responses:
        '200':
          description: The returned resource is a single `Request`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestPayload'
              examples:
                GoodOrServicesResponseExample:
                  summary: type GOODS_OR_SERVICES
                  description: GoodOrServicesResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: GOODS_OR_SERVICES
                    name: Goods or Services
                    amount: 150
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    number_transactions: '1'
                    payment_method: card
                    description: TYPE GOOD_SERVICES
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
                TripResponseExample:
                  summary: type TRIP
                  description: TripResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: TRIP
                    name: Trip
                    amount: '150.00'
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    card_id: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
                    description: TYPE TRIP
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    destination: Rome
                    date_from: '2025-12-24T23:00:00Z'
                    date_to: '2025-12-26T22:59:59.999Z'
                    traveller: LVRS6404-000005
                    expense_allocation:
                    - expense_category_id: 0145e140-fc56-4ffd-9a57-a3c776bb2b51
                      spend_period: BEFORE_TRIP
                      amount: 1
                      amount_currency: EUR
                    tags: []
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
                FundResponseExample:
                  summary: type FUNDS
                  description: FundResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: FUNDS
                    name: Fund
                    amount: 150
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    card_id: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
                    description: TYPE FUNDS
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - request_read
    put:
      tags:
      - Requests
      summary: Update Request
      description: Endpoint to update an `Request`. There are 3 types of request:GOODS_OR_SERVICES, FUNDS, TRIP.
      operationId: request-update
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
          description: The `Request` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      - name: X-Soldo-Fingerprint
        in: header
        required: true
        schema:
          type: string
          description: '[Advanced authentication](ref:advanced-authentication): `SHA512SUM` of the fingerprint values listed in the fingerprint order for this endpoint.'
          example: '{{fingerprint}}'
          default: '{{fingerprint}}'
      - name: X-Soldo-Fingerprint-Signature
        in: header
        required: true
        schema:
          type: string
          description: '[Advanced authentication](ref:advanced-authentication): Signature of the `X-Soldo-Fingerprint`.'
          example: '{{fingerprint_signature}}'
          default: '{{fingerprint_signature}}'
      requestBody:
        description: Update `request` JSON parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRequestPayload'
      responses:
        '200':
          description: The returned resource is the single `Request` created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestPayload'
              examples:
                GoodOrServicesResponseExample:
                  summary: type GOODS_OR_SERVICES
                  description: GoodOrServicesResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: GOODS_OR_SERVICES
                    name: Goods or Services
                    amount: 150
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    number_transactions: '1'
                    payment_method: card
                    description: TYPE GOOD_SERVICES
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
                TripResponseExample:
                  summary: type TRIP
                  description: TripResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: TRIP
                    name: Trip
                    amount: '150.00'
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    card_id: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
                    description: TYPE TRIP
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    destination: Rome
                    date_from: '2025-12-24T23:00:00Z'
                    date_to: '2025-12-26T22:59:59.999Z'
                    traveller: LVRS6404-000005
                    expense_allocation:
                    - expense_category_id: 0145e140-fc56-4ffd-9a57-a3c776bb2b51
                      spend_period: BEFORE_TRIP
                      amount: 1
                      amount_currency: EUR
                    tags: []
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
                FundResponseExample:
                  summary: type FUNDS
                  description: FundResponseExample
                  value:
                    id: 776f5018-07e5-426b-a426-8b23fa1e985d
                    type: FUNDS
                    name: Fund
                    amount: 150
                    currency: EUR
                    status: PENDING
                    request_process_id: 7bf79328-a7ae-4222-aa54-091ff7f429a7
                    card_id: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
                    description: TYPE FUNDS
                    requester: LVRS6404-000089
                    approveDate: '2025-12-03T14:19:36Z'
                    hasAttachments: 'false'
                    note: note
                    creation_time: '2025-12-03T14:15:14Z'
                    last_update: '2025-12-03T14:19:36Z'
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - request_write
      x-soldo:
        fingerprint-order: id, request_timestamp, name, token
    delete:
      tags:
      - Requests
      summary: Delete Request
      description: Endpoint to remove an `Request`.
      operationId: request-delete
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
          description: The `Request` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      responses:
        '204':
          description: No content as result.
        '400':
          description: Your request has missing arguments or is malformed.
      security:
      - standardAuth:
        - request_write
components:
  schemas:
    CreateRequestPayload:
      required:
      - amount
      - currency
      - name
      - request_process_id
      - request_timestamp
      - requester
      - type
      type: object
      properties:
        name:
          type: string
          description: The name of the `Request`.
          example: Supplier name
        requester:
          type: string
          description: The ID of the `User` that makes the `Request`.
          example: XMPL1234-000001
        amount:
          type: number
          description: The total amount of the `Request`.
          example: 10.25
        currency:
          $ref: '#/components/schemas/ISO4217Currency'
        note:
          type: string
          description: The requester's note of the `Request`.
          example: Requester note
        type:
          $ref: '#/components/schemas/RequestType'
        request_process_id:
          type: string
          description: The process id of the `Request`.
          example: 135fdb6c-2e77-4fc0-a79f-2453fde75ef7
        request_timestamp:
          type: integer
          description: The epoch timestamp in millis. This is checked in Soldo. Requests with timestamp older than 5 seconds will be rejected.
          format: int64
          example: 1576850500000
        attachment_document_ids:
          uniqueItems: true
          type: array
          description: The requester's attachment of the `Request`.
          example: 135fdb6c-2e77-4fc0-a79f-2453fde75ef7
          items:
            type: string
            description: The requester's attachment of the `Request`.
            example: 135fdb6c-2e77-4fc0-a79f-2453fde75ef7
      description: Base schema for create request. The actual fields depend on the `type`.
      discriminator:
        propertyName: type
        mapping:
          FUNDS: '#/components/schemas/CreateRequestFunds'
          GOODS_OR_SERVICES: '#/components/schemas/CreateRequestGoodsOrServices'
          TRIP: '#/components/schemas/CreateRequestTrip'
    ISO4217Currency:
      type: string
      description: 'The [ISO 4217](https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=maintenance-agency) code of the currency of the `Wallet` (sortable: no)'
      example: EUR
      enum:
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BDT
      - BGN
      - BHD
      - BIF
      - BMD
      - BND
      - BOB
      - BOV
      - BRL
      - BSD
      - BTN
      - BWP
      - BYN
      - BZD
      - CAD
      - CDF
      - CHE
      - CHF
      - CHW
      - CLF
      - CLP
      - CNY
      - COP
      - COU
      - CRC
      - CUC
      - CUP
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EGP
      - ERN
      - ETB
      - EUR
      - FJD
      - FKP
      - GBP
      - GEL
      - GHS
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HRK
      - HTG
      - HUF
      - IDR
      - ILS
      - INR
      - IQD
      - IRR
      - ISK
      - JMD
      - JOD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KPW
      - KRW
      - KWD
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL
      - LYD
      - MAD
      - MDL
      - MGA
      - MKD
      - MMK
      - MNT
      - MOP
      - MRO
      - MRU
      - MUR
      - MVR
      - MWK
      - MXN
      - MXV
      - MYR
      - MZN
      - NAD
      - NGN
      - NIO
      - NOK
      - NPR
      - NZD
      - OMR
      - PAB
      - PEN
      - PGK
      - PHP
      - PKR
      - PLN
      - PYG
      - QAR
      - RON
      - RSD
      - RUB
      - RWF
      - SAR
      - SBD
      - SCR
      - SDG
      - SEK
      - SGD
      - SHP
      - SLE
      - SLL
      - SOS
      - SRD
      - SSP
      - STD
      - STN
      - SVC
      - SYP
      - SZL
      - THB
      - TJS
      - TMT
      - TND
      - TOP
      - TRY
      - TTD
      - TWD
      - TZS
      - UAH
      - UGX
      - USD
      - USN
      - UYI
      - UYU
      - UYW
      - UZS
      - VED
      - VEF
      - VES
      - VND
      - VUV
      - WST
      - XAF
      - XAG
      - XAU
      - XBA
      - XBB
      - XBC
      - XBD
      - XCD
      - XDR
      - XOF
      - XPD
      - XPF
      - XPT
      - XSU
      - XTS
      - XUA
      - XXX
      - YER
      - ZAR
      - ZMW
      - ZWL
    Requests:
      type: object
      properties:
        total:
          type: integer
          description: It represents the total number of available items in the list.
          format: int32
          example: 168
        pages:
          type: integer
          description: It represents the total number of available pages.
          format: int32
          example: 7
        page_size:
          type: integer
          description: It represents the number of items per page.
          format: int32
          example: 25
        current_page:
          type: integer
          description: It indicates the current page (the counter starts from zero).
          format: int32
          example: 0
        results_size:
          type: integer
          description: It indicates the size of the array results.
          format: int32
          example: 25
        results:
          type: array
          items:
            $ref: '#/components/schemas/RequestItem'
    ReviewProcessStepStatus:
      type: string
      description: The status of the step that approves/rejects the expense.
      example: APPROVED
      enum:
      - APPROVED
      - PARTIALLY_APPROVED
      - DECLINED
    RequestStepInfo:
      type: object
      properties:
        step_number:
          type: integer
          description: The number of the step that approves/rejects the expense.
          format: int32
          example: 2
        reviewer_type:
          $ref: '#/components/schemas/ReviewProcessReviewerType'
        status:
          $ref: '#/components/schemas/ReviewProcessStepStatus'
        date:
          type: string
          description: The timestamp of the step that approves/rejects the expense.
          example: '2025-12-24T23:00:00Z'
        reviewer_info:
          type: array
          description: The name of the step that approves/rejects the expense.
          items:
            $ref: '#/components/schemas/RequestApproverInfo'
        automatic_review:
          type: boolean
          description: The name of the step that approves/rejects the expense.
          example: false
      description: 'The timeline review step of the `Request` (sortable: no).'
    ReviewProcessReviewerType:
      type: string
      description: The type of review of the step that approves/rejects the expense.
      example: ROLE
      enum:
      - LINE_MANAGER
      - ROLE
      - AUTOMATIC
      - USER
    Direction:
      type: string
      description: It indicates how the pages are ordered.
      example: DESC
      enum:
      - ASC
      - DESC
    ApprovedRequestPayload:
      required:
      - approver
      - type
      - wallet_id
      type: object
      properties:
        note:
          type: string
          description: The supervisor's note of the `Request`.
          example: Requester note
        approver:
          type: string
          description: The requester's note of the `Request` .
          example: XMPL1234-000001
        type:
          $ref: '#/components/schemas/RequestType'
        wallet_id:
          type: string
          description: The ID of the `Wallet` of `Request`, the request type is `Funds` or `BusinessTrip`.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      description: Base schema for approved request. The actual fields depend on the `type`.
      discriminator:
        propertyName: type
        mapping:
          FUNDS: '#/components/schemas/ApprovedRequestFunds'
          GOODS_OR_SERVICES: '#/components/schemas/ApprovedRequestGoodsOrServices'
          TRIP: '#/components/schemas/ApprovedRequestTrip'
    DeclineRequest:
      required:
      - reviewer
      - supervisor_note
      type: object
      properties:
        supervisor_note:
          type: string
          description: 'The supervisor''s note of the `Request` (sortable: no).'
          example: Requester note
        reviewer:
          type: string
          description: 'The reviewer''s note of the `Request` (sortable: no).'
          example: XMPL1234-000001
    RequestType:
      type: string
      description: The type of the `Request`.
      example: GOODS_OR_SERVICES
      enum:
      - GOODS_OR_SERVICES
      - FUNDS
      - TRIP
    UpdateRequestPayload:
      required:
      - request_timestamp
      - type
      type: object
      properties:
        name:
          type: string
          description: The name of the `Request`.
          example: Supplier name
        description:
          type: string
          description: The description of the `Request`.
          example: Example description
        note:
          type: string
          description: The requester's note of the `Request`.
          example: Requester note
        type:
          $ref: '#/components/schemas/RequestType'
        request_timestamp:
          type: integer
          description: The epoch timestamp in millis. This is checked in Soldo. Requests with timestamp older than 5 seconds will be rejected.
          format: int64
          example: 1576850500000
      description: Base schema for update request. The actual fields depend on the `type`.
      discriminator:
        propertyName: type
        mapping:
          FUNDS: '#/components/schemas/UpdateRequestFunds'
          GOODS_OR_SERVICES: '#/components/schemas/UpdateRequestGoodsOrServices'
          TRIP: '#/components/schemas/UpdateRequestTrip'
    RequestPayload:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/RequestType'
        id:
          type: string
          description: 'The `Request` ID (sortable: no).'
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
        name:
          type: string
          description: 'The name of the `Request` (sortable: no).'
          example: Supplier name
        description:
          type: string
          description: 'The description of the `Request` (sortable: no).'
          example: Example description
        requester:
          type: string
          description: 'The ID of the `User` that makes the `Request` (sortable: no).'
          example: XMPL1234-000001
        request_process_id:
          type: string
          description: 'The `ExpenseReviewProcess` ID of the `Request` (sortable: no).'
          example: 135fdb6c-2e77-4fc0-a79f-2453fde75ef7
        status:
          $ref: '#/components/schemas/RequestStatus'
        amount:
          type: number
          description: 'The amount of the `Request` (sortable: no).'
          example: 10.25
        currency:
          $ref: '#/components/schemas/ISO4217Currency'
        has_attachments:
          type: boolean
          description: 'It determines whether the `Request` has one or more attachments (sortable: no).'
          example: false
        creation_time:
          type: string
          description: 'The date and time when the `Request` was created (sortable: yes).'
          example: '2017-06-01T12:48:40Z'
        last_update_time:
          type: string
          description: 'The date and time when the `Request` was last updated (sortable: yes).'
          example: '2017-06-01T12:48:40Z'
        note:
          type: string
          description: 'The comments of the `Request` (sortable: no).'
          example: Requester note
        review_timeline:
          type: array
          description: 'The timeline review step of the `Request` (sortable: no).'
          items:
            $ref: '#/components/schemas/RequestStepInfo'
        attachment_document_ids:
          uniqueItems: true
          type: array
          description: The requester's attachment of the `Request`.
          example: 135fdb6c-2e77-4fc0-a79f-2453fde75ef7
          items:
            type: integer
            format: int64
      discriminator:
        propertyName: type
    PaymentMethod:
      type: string
      description: The method of payment of the `Request`.
      example: TEMPORARY_CARD
      enum:
      - TEMPORARY_CARD
      - BANK_TRANSFER
    RequestStatus:
      type: string
      description: 'The status of the `Request` (sortable: no).'
      example: APPROVED
      enum:
      - APPROVED
      - DECLINED
      - PENDING
      - IDLE
      - DELETED
    RequestApproverInfo:
      type: object
      properties:
        id:
          type: string
          description: The ID of the `User` who approves/rejects the expense.
          example: XMPL1234-000003
        name:
          typ

# --- truncated at 32 KB (169 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/soldo-software-and-services/refs/heads/main/openapi/soldo-software-and-services-requests-api-openapi.yml