> ## 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.

# V0 - Bulk send expense reports

> Sends multiple expense reports in a single request, batching them into one export file. This matches the behavior of selecting and sending multiple reports at once in the Findity UI.

Reports that cannot be sent are returned in `invalidReports` — the remaining valid reports are still sent.



## OpenAPI

````yaml openapi/findity-admin-api-1.json PUT /expensereports/bulksendreports
openapi: 3.0.3
info:
  title: Findity Admin API
  description: ''
  version: 1.0.0
  contact:
    name: Findity Support
    email: support@findity.com
servers:
  - url: https://stage-expense.findity.com/api/admin
    description: Stage environment
  - url: https://expense.findity.com/api/admin
    description: Production environment
security:
  - bearerAuth: []
paths:
  /expensereports/bulksendreports:
    put:
      tags:
        - Bulk send expense reports
      summary: V0 - Bulk send expense reports
      description: >-
        Sends multiple expense reports in a single request, batching them into
        one export file. This matches the behavior of selecting and sending
        multiple reports at once in the Findity UI.


        Reports that cannot be sent are returned in `invalidReports` — the
        remaining valid reports are still sent.
      operationId: bulkSendExpenseReports
      parameters:
        - name: Content-Type
          in: header
          schema:
            type: string
            default: application/json
            description: ''
        - name: X-Findity-ApiVersion
          in: header
          schema:
            type: string
            default: '3'
            description: ''
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - ids
              properties:
                ids:
                  type: array
                  description: >-
                    List of expense report IDs to send. All reports will be
                    batched into a single export file.
                  items:
                    type: string
                  minItems: 1
                  example:
                    - f328e47d595c40ad80f27f52626c5b92
                    - a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
                date:
                  type: string
                  format: date-time
                  description: >-
                    Optional date to associate with the export. If omitted, the
                    current date is used.
                  example: '2026-05-04T00:00:00Z'
            example:
              ids:
                - f328e47d595c40ad80f27f52626c5b92
                - a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
              date: null
      responses:
        '200':
          description: >-
            The batch was processed. Check `invalidReports` for any reports that
            could not be sent.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reports:
                    type: array
                    description: Reports that were successfully sent.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The report ID.
                        name:
                          type: string
                          description: The report name.
                        status:
                          type: string
                          description: The new status of the report.
                  invalidReports:
                    type: array
                    description: >-
                      Reports that could not be sent, e.g. because they were not
                      in a sendable status.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The report ID.
                        name:
                          type: string
                          description: The report name.
                        status:
                          type: string
                          description: >-
                            The current status of the report that prevented
                            sending.
                  jobid:
                    type: string
                    description: The ID of the background job processing the batch send.
                    example: job-abc123
              example:
                reports:
                  - id: f328e47d595c40ad80f27f52626c5b92
                    name: Expense Report May 2026
                    status: SENT
                  - id: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
                    name: Travel Report April 2026
                    status: SENT
                invalidReports: []
                jobid: job-abc123
        '400':
          description: Bad request, e.g. malformed body.
          content:
            application/json:
              example:
                code: invalid_report_status
                description: One or more reports are not in a sendable status.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````